load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_test")

#  Build with --define=kafka_enabled=false to exclude kafka wrapper.
config_setting(
    name = "kafka_disabled",
    values = {"define": "kafka_enabled=false"},
)

# gazelle:exclude db.go
# gazelle:exclude db_kafka_wrapped.go
go_library(
    name = "go_default_library",
    srcs = [
        "alias.go",
        "log.go",
        "restore.go",
    ] + select({
        ":kafka_disabled": [
            "db.go",
        ],
        "//conditions:default": [
            "db_kafka_wrapped.go",
        ],
    }),
    importpath = "github.com/prysmaticlabs/prysm/beacon-chain/db",
    visibility = [
        "//beacon-chain:__subpackages__",
        "//cmd/beacon-chain:__subpackages__",
        "//fuzz:__pkg__",
        "//tools:__subpackages__",
    ],
    deps = [
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/db/iface:go_default_library",
        "//beacon-chain/db/kv:go_default_library",
        "//shared/cmd:go_default_library",
        "//shared/fileutil:go_default_library",
        "//shared/promptutil:go_default_library",
        "//shared/tos:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_urfave_cli_v2//:go_default_library",
    ] + select({
        "//conditions:default": [
            "//beacon-chain/db/kafka:go_default_library",
        ],
        ":kafka_disabled": [],
    }),
)

go_test(
    name = "go_default_test",
    srcs = [
        "db_test.go",
        "restore_test.go",
    ],
    embed = [":go_default_library"],
    deps = [
        "//beacon-chain/db/kv:go_default_library",
        "//shared/cmd:go_default_library",
        "//shared/testutil:go_default_library",
        "//shared/testutil/assert:go_default_library",
        "//shared/testutil/require:go_default_library",
        "@com_github_prysmaticlabs_eth2_types//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
        "@com_github_urfave_cli_v2//:go_default_library",
    ],
)
